package com.baomidou.ant.utils;

import org.springframework.mock.web.MockMultipartFile;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;

public class MyFileUtil {
    /**
     * 文件上传实现方法
     * @param uploadfile
     * uploadfile:文件本体
     * fileName：文件名
     * bidPath:存放地址
     */
    public static String handleFormUpload(MultipartFile uploadfile, String fileName, String Path) throws Exception{
        // 获取上传文件的原始名称
        String originalFilename = uploadfile.getOriginalFilename();
        String[] filename = originalFilename.split("\\.");
        //临时文件
        File file=File.createTempFile("(临时存放)"+filename[0], "."+filename[1]);
        uploadfile.transferTo(file);
        //重命名,模板文件名为项目名
        file = cn.hutool.core.io.FileUtil.rename(file, fileName, true, true);
        InputStream inputStream = new FileInputStream(file);
        //File转换成MultipartFile
        uploadfile = new MockMultipartFile(file.getName(), inputStream);
        //程序退出后删除临时文件
        file.deleteOnExit();
        if (!uploadfile.isEmpty()) {
            // 设置上传文件的保存地址目录
            String dirPath = Path;
            File setFilePath = new File(dirPath);
            // 如果保存文件的地址不存在，就先创建目录
            if (!setFilePath.exists()) {
                setFilePath.mkdirs();
            }
            try {
                // 文件保存路径
                String filePath = dirPath + uploadfile.getName();
                // 转存文件
                uploadfile.transferTo(new File(filePath));
                return filePath;
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        }
        return null;
    }
}
